package com.icoolkj.mall.gateway.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.reactive.CorsWebFilter;
import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;

/**
 * @author icoolkj
 * @version 1.0
 * @description
 * @createDate 2025/01/19 15:41
 */
@Configuration
public class CorsConfig {
    @Bean
    public CorsWebFilter corsFilter() {
        CorsConfiguration config = new CorsConfiguration();
        // 允许的前端地址
        config.addAllowedOrigin("http://localhost:88"); // 只允许特定的前端地址

        // 允许所有 HTTP 方法（包括 GET）
        config.addAllowedMethod("*");

        // 允许所有请求头
        config.addAllowedHeader("*");

        // 设置允许带有凭证（如 Cookies）
        config.setAllowCredentials(true);

        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", config); // 全局匹配所有请求路径

        return new CorsWebFilter(source);
    }
}